﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Day06
{
    /// <summary>
    /// 二维数组助手类
    /// </summary>
    static class DoubleArraryHelper
    {
        //过渡版本
        public static T[] GetElements<T>(this T[,] array, int rIndex, int cIndex,int dirX,int dirY,int count)
        {
            //     10      右侧      3  —— 拿到11 12 13
            //技巧：0 1表示右侧；1 0表示下侧；-1 -1表示左上……代表索引的增加减少
            List<T> list = new List<T>(array.Length);
            for (int i = 0; i < count; i++)
            {
                rIndex += dirX;//1 += 0
                cIndex += dirY;//0 += 1
                list.Add(array[rIndex, cIndex]);
            }
            return list.ToArray();
        }
        public static T[] GetElements<T>(this T[,] array, int rIndex, int cIndex, Direction dir, int count)
        {
            //     10      右侧      3  —— 拿到11 12 13
            //技巧：0 1表示右侧；1 0表示下侧；-1 -1表示左上……代表索引的增加减少
            List<T> list = new List<T>(array.Length);
            for (int i = 0; i < count; i++)
            {
                rIndex += dir.X;//1 += 0
                cIndex += dir.Y;//0 += 1
                list.Add(array[rIndex, cIndex]);
            }
            return list.ToArray();
        }
    }
}
